מבנה התכנית יסודות מדעי המחשב התכנית הראשונה שלי

Similar documents
התכנית הראשונה שלי

ניפוי שגיאות )Debug( מאת ישראל אברמוביץ

תצוגת LCD חיבור התצוגה לבקר. (Liquid Crystal Display) המערכת.

ASP.Net MVC + Entity Framework Code First.

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

Redirection The Input Buffer

מבוא לתכנות - פיתוח משחקים ב Action Script 3.0

שאלות חזרה לקראת מבחן מפמ"ר אינטרנט וסייבר

בוחן בתכנות בשפת C בצלחה

מבוא לתכנות ב- JAVA תרגול 7

Rules Game (through lesson 30) by Nancy Decker Preparation: 1. Each rule board is immediately followed by at least three cards containing examples of

מכונת מצבים סופית תרגול מס' 4. Moshe Malka & Ben lee Volk

המבנה הגאומטרי של מידה

מבוא למחשב בשפת פייתון

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

קשירות.s,t V שני צמתים,G=(V,E) קלט: גרף מכוון מ- s t ל- t ; אחרת.0 אם יש מסלול מכוון פלט: הערה: הגרף נתון בייצוג של רשימות סמיכות.

A R E Y O U R E A L L Y A W A K E?

מ ש ר ד ה ח י נ ו ך ה פ ד ג ו ג י ת א ש כ ו ל מ ד ע י ם על ה ו ר א ת ה מ ת מ ט י ק ה מחוון למבחן מפמ"ר לכיתה ט', רמה מצומצמת , תשע"ב טור א'

למבחן ביסודות מדעי המחשב דוגמא

טכנולוגיית WPF מספקת למפתחים מודל תכנות מאוחד לחוויית בניית יישומיי

הבסיס כתיבת התכנית הראשונה שימוש במשתנים. הטיפוס הבסיסי object. הטיפוס הבסיסי string משפטי בקרה. שימוש ב- Enumerations. שימוש ב- Namespaces

Visual C# Express יסודות מדעי המחשב 1 מהדורת עיצוב תשס"ו 2006 כתבה: יעל בילצ'יק (סופרין)

מספר השאלון: Thinking Skills נספח: כישורי חשיבה )לפרק ראשון ושני( א נ ג ל י ת (MODULE F) ספרות )מילון הראפס אנגלי-אנגלי-ערבי(

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון א' Corresponds with Module A (Without Access to Information from Spoken Texts) גרסה א'

עץ תורשה מוגדר כך:שורש או שורש ושני בנים שכל אחד מהם עץ תורשה,כך שערך השורש גדול או שווה לסכום הנכדים(נכד-הוא רק בן של בן) נתון העץ הבא:

סה"כ נקודות סה"כ 31 נקודות סה"כ 21 תוכן עניינים של פתרון המבחן. לולאת for )נתון אלגוריתם... מעקב, פלט

בהצלחה! (MODULE C) Hoffman, Y. (2014). The Universal English-Hebrew, Hebrew-English Dictionary

תכנית סטארט עמותת יכולות, בשיתוף משרד החינוך א נ ג ל י ת שאלון ב' Corresponds with Module B גרסה ב' הוראות לנבחן


THINKING ABOUT REST THE ORIGIN OF SHABBOS

מותאמת לסביבת. Visual C# 2005 Express שונות. ולבצע rename לשם המבוקש

A JEW WALKS INTO A BAR: JEWISH IDENTITY IN NOT SUCH JEWISH PLACES

עד כה עסקנו בתוכניות שמתקדמות פקודה אחרי פקודה העתק ל- ax את הערך 3 העתק ל- bx את הערך 4 הוסף ל- ax את bx כפול את התוצאה ב- 2 והעתק ל- cx

ANNEXURE "E1-1" FORM OF IRREVOCABLE STANDBY LETTER OF CREDIT PERFORMANCE OF CONTRACT (WHERE PRICES ARE NOT LINKED TO AN ESCALATION FORMULA)

Advisor Copy. Welcome the NCSYers to your session. Feel free to try a quick icebreaker to learn their names.

דיאגרמה לתיאור Classes

מבחן באנגלית בהצלחה הצלחה!!! שם פרטי: שם משפחה: מס' תעודת זהות: תאריך: שם מרכז מנהל מרכז השכלה: תאריך בדיקת המבחן: כל הזכויות שמורות למשרד החינוך

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

אנגלית שאלון ז' ג רסה א' הוראות לנבחן בהצלחה! )4( ההנחיות בשאלון זה מנוסחות בלשון זכר ומכוונות לנבחנות ולנבחנים כאחד. (MODULE G)

ב. משרד החינוך בגרות לנבחנים אקסטרניים א נ ג ל י ת (MODULE B) הוראות מיוחדות: )2( בתום הבחינה החזר את השאלון למשגיח. בהצלחה!

אנגלית (MODULE E) בהצלחה!

Hebrew Ulpan HEB Young Judaea Year Course in Israel American Jewish University College Initiative

זה. Nir Adar

Reflection Session: Sustainability and Me

יחידה ארגון המחשב ושפת סף: שאלות תרגול

א נ ג ל י ת בהצלחה! ב. משרד החינוך בגרות לנבחנים אקסטרניים )מילון הראפס אנגלי-אנגלי-ערבי( השימוש במילון אחר טעון אישור הפיקוח על הוראת האנגלית.

Name Page 1 of 6. דף ט: This week s bechina starts at the two dots in the middle of

המחלקה למדעי המחשב, אוניברסיטת בן גוריון מבני נתונים, סמסטר אביב 2102 עבודת בית מספר - 2 מעשית

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 134 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 37

פרק מושגים חדשים שימוש בפונקציות לשם מה?

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

Practical Session No. 13 Amortized Analysis, Union/Find

שאלון ד' הוראות לנבחן

שאלון ו' הוראות לנבחן

אנגלית ספרות בהצלחה! /המשך מעבר לדף/ נספח: כישורי חשיבה )לפרק ראשון ושני( או: מילון אנגלי-ערבי / ערבי-אנגלי או: מילון אנגלי-אנגלי-ערבי

מספר השאלון: הצעת תשובות לשאלות בחינת הבגרות אנגלית (MODULE C) מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי قاموس إنجليزي - إنجليزي - عربي

2 יחידות לימוד הוראות לנבחן רשו ם "טיוטה" בראש כל עמוד טיוטה. רישום טיוטות כלשהן על דפים שמחוץ למחברת הבחינה עלול לגרום לפסילת הבחינה!

SPSS 10.0 FOR WINDOWS

פולימורפיזם. blog.csit.org.il מדעי המחשב

כפתור רדיו בחירה בודדת מתוך רשימת אפשרויות

הוראת הדפסה/פלט כשנריץ קובץ זה נקבל ( 6/5/4 מחקו את המיותר( שורות "הדפסה" לדף ה- HTML בשורה 3 יודפס בשורה 6 יודפס

שאלון ו' הוראות לנבחן

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

מספר ת"ז: יש לסמן את התשובה הטובה ביותר בתשובון. לא יינתן ניקוד על סימון תשובה בטופס הבחינה או במחברת הבחינה.

(MODULE E) ב ה צ ל ח ה!

ãówh,é ËÓÉÔê ÌW W É Å t" Y w f É ËÓÉÑ É èw É f Ñ u ð NNM YóQ' ÌW W É Y ÉgO d óqk É w f ym Éd É u ð NNM ÌWNQMH uqo ð NNM ÌWNQMH

Patents Basics. Yehuda Binder. (For copies contact:

זו מערכת ישרת זוית )קרטזית( אשר בה יש לנו 2 צירים מאונכים זה לזה. באותו מישור ניתן להגדיר נקודה על ידי זוית ורדיוס וקטור

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE F) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

מדריך למשתמש בשירות. yes MultiRoom

מדריך למשתמש התקנה עצמית

מושגים בסיסיים תלמידים והורים יקרים,

פרק 7 ביצוע-חוזר 7.1 ביצוע-חוזר מספר פעמים ידוע מראש 1 בעיה הביצוע-החוזר.

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות מילון אנגלי-אנגלי-עברי או מילון אנגלי-עברי-עברי-אנגלי

אנגלית שאלון ז' (MODULE G) ג רסה א' הוראות לנבחן )מילון אנגלי-ערבי / ערבי-אנגלי )

נספח: כישורי חשיבה )לפרק ראשון ושני( אנגלית (MODULE D) ספרות או מילון אנגלי-עברי-עברי-אנגלי

בהוראה: הפעולה new מקצה זיכרון עבור עצם בשם s1 המפנה לזיכרון שהוקצה. במקרה זה העצם s1. System.out.println("Enter two numbers:"); String s1;

פרק עצמים א. טיפוסים חדשים ב. מצב של עצם

מדריך שימוש בדואר האלקטרוני

SHABBOS, 10 TAMMUZ, 5778

מבוא לאסמבלי מאת אופיר בק חלקים נרחבים ממאמר זה נכתבו בהשראת הספר "ארגון המחשב ושפת סף" אשר נכתב ע"י ברק גונן לתוכנית גבהים של משרד החינוך.

ניסוי בפייתון מכון טכנולוגי לישראל הניסוי מתקיים בבניין פישבך, חדר 573 )במסדרון למאייר(. המאחר ביותר מ- 53 דקות לא יורשה לבצע את הניסוי.

מבוא לשפת C מבוא לשפת סי - תירגול 1

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

תרגול 8. Hash Tables

Name Page 1 of 5. ,דף ד: This week s bechina starts at the bottom of שיר של חול

3. class attr_accessor def end 9. end puts "

מבוא לשפת C תירגול 1: מבוא מבוא לשפת סי - תירגול 1

תוכן העניינים: פרק סדרות סיכום תכונות הסדרה החשבונית:... 2 תשובות סופיות:...8 סיכום תכונות הסדרה ההנדסית:...10

Parts of Speech

מבוא למדעי המחשב בשפת JAVA חוברת תרגילים... 1

שנה"ל תשע"ד,סמסטר א',מועד א שאלון בחינה בקורס: מבוא למדעי המחשב לתעו"נ מספר : בחלק א' 11 שאלות, יש לענות על 11 מתוכן )כל שאלה מזכה ב 7 נקודות(

דוגמה 1: הדרקון המשתנה שינוי גודל דמות

מבוא למדעי המחשב בשפת ++C - חוברת תרגילים

Structural Vs. Nominal Typing

כ"ג אלול תשע"ו - 26 ספטמבר, 2016 Skills Worksheet #2

FILED: NEW YORK COUNTY CLERK 07/16/2014 INDEX NO /2014 NYSCEF DOC. NO. 102 RECEIVED NYSCEF: 07/16/2014 EXHIBIT 5

פקס בחיבור המכשיר המשולב לפקס יש לעבור על השלבים הבאים: - חבר את כבל הטלפון לחיבור ה- LINE בגב המדפסת ואת צידו השני לשקע הטלפון בקיר.

עיבוד שפות טבעיות מבוא

חוק זכויות הסוכן חוק חוזה סוכנות )סוכן מסחרי וספק(

Transcription:

2-1 מבנה התכנית התכנית הראשונה שלי מחלקה מגדירה עצם. עצמים מתקשרים ביניהם באמצעות תכנית מ נ ח ה. בפרקים הבאים נכיר את המנחה ואת הוראות השפה, ובהמשך נלמד לשלב גם עצמים. לפניך תכנית בשפת #C. התכנית קולטת את גילו של אדם ומדפיסה את גילו בעוד שנה. לבסוף מדפיסה ברכה להמשך יום נעים: 1. /*~~~~~~~~~~~~~~~~~~~~~~* * תכנית דוגמא * 2. 3. *~~~~~~~~~~~~~~~~~~~~~~*/ 4. using System; 5. namespace DefaultNamespace 6. 7. class MainClass 8. 9. public static void Main (string[] args) 10. 11. double age; 12. string name; 13. Console.Write ("What is your name? "); 14. name = Console.ReadLine (); 15. Console.Write ("How old are you? "); 16. age = double.parse(console.readline()); 17. age = age + 1; 18. Console.WriteLine ("Hello " + name); 19. Console.WriteLine ("Next year you will be 0", age); 20. Console.WriteLine ("Have a nice day :o)"); 21. 22. 23. בתכנית מופיעים מאפיינים רבים של שפת #C, כגון שימוש במשתנים, הוראות קלט, עיבוד הנתונים שנקלטו, הוראות פלט והוראת השמה. יתכן וקוד התכנית נראה לא ברור בשלב זה, אך בהמשך נכיר את כל המאפיינים שהוזכרו ונלמד לכתוב תכניות משלנו. בסיומו של פרק זה, נהיה מסוגלים לכתוב תכניות כדוגמת תכנית זו.

2-2 המבנה הכללי של תכנית בשפת # C במהלך לימוד פרקי הספר השונים, יובהרו כל מרכיבי התכנית. תיעוד התכנית גוף התכנית החלק הביצועי 1. /*.2 * תיאור הקלט והפלט של התכנית 3. */ 4. using System; 5. namespace DefaultNamespace 6. 7. class MainClass 8. 9. public static void Main (string[] args) 10..11 גוף התכנית // 12. ; הוראה 13. ; הוראה 14. 15. 16. חלקי התוכנית שורות 1 3: תיעוד התכנית. שורות אלו הן הערות. ההערות אינן הוראות לביצוע. הן והנחייה לאדם הקורא את התכנית. המהדר מתעלם מהן. מהדר - שפה שמהמחשב מסוגל להבין. לכל שפת תכנות יש מהדר משלה. שורות 6 5, 4, ו- 16: שימוש ב- System ויצירת מרחב שמות. מרחב שמות הוא אוסף של מחלקות שירותים שונים למתכנת. במקום שהמתכנת יצטרך לכתוב )הפעולה(, יודע המהדר לחפש את הפעולה במרחב השמות. בתוך מרחב השמות System מוגדרת מחלקה מיוחדת הקרויה קלט ופלט, ולכן בכל תכנית שנכתוב נצטרך להוסיף את השורה בשורה 5 אם בחרנו להשאיר את שורת ה- קובעים בלוק שורות 8, 7 ו- 15: הכרזה על מחלקה. משמשות להוספת מידע, הסבר :compiler תכנית מחשב המתרגמת את התכנית שכתבנו בשפת #C לשפת מכונה - שורה 4 מכילה הודעה שהתכנית מתכוונת לעשות שימוש במרחב שמות הקרוי.System שפת אשר נאספו יחד וקיבלו שם משותף. על מנת שנוכל להשתמש בהן, יש לציין שם זה. ניתן להתייחס למחלקות אלה כאל חבילות תכנה המספקות בעצמו את קוד תכנית השרות Console המספקת לנו שרותי. using System ; מוגדר מרחב השמות. בתכנית הלימודים שלנו נוכל להתעלם משורה זו, ולוותר עליה, או להשאיר את השם שנקבע אוטומטית על ידי העורך בעת יצירת תכנית חדשה.,namespace הרי שהסוגריים המסולסלים שבשורות 6 ו- 16 )קטע תכנית( שבתוכו מוגדרות הפעולות של מרחב השמות. אם נבחר שלא לרשום את שורה 6, נסיר גם את סימני הסוגריים המסולסלים שבשורות אלו. #C היא שפה מכוונת עצמים. שפות מכוונות עצמים משתמשות במחלקות כדי להכריז

2-3 על עצמים )אובייקטים(. התכנית שלנו הינה אובייקט. כדי ליצור אובייקט יש ליצור מחלקה שתגדיר אותו. השם MainClass אינו שם מחייב והוא ניתן לשינוי על ידי המתכנת. הסוגריים המסולסלים בשורות 8 ו- 15 קובעים את גבולות המחלקה. שורה 9: כותרת הפעולה הראשית Main () המחשב צריך לדעת מהיכן להתחיל את ביצוע התכנית. התכנית ב- #C מתחילה תמיד מהפעולה הראשית.Main פעולה הינה קטע קוד שנועד לבצע משימה מוגדרת. public static void Main (string [] args) ניתן להשמיט את הקידומת public )זו ברירת המחדל(. כמו כן ניתן להשמיט את מה שבתוך הסוגריים )אבל לא את הסוגריים(. המינימום הנדרש הוא: static void Main( ) שים : המילה Main מתחילה באות גדולה. הסוגריים המסולסלים בשורות 10 ו- 14 קובעים את גבולות הפעולה.Main שורות 14: - 10 החלק הביצועי - התכנית. החלק הביצועי תחום בתוך סוגריים מסולסלים הפותחים את התכנית בשורה 10 ומסיימים אותה בשורה 14. הערות ותיעוד בתכנית על מנת שתכנית תהיה ברורה לקורא התכנית, היא חייבת להיות מוסברת )מתועדת( היטב, מעוצבת וכתובה לפי מוסכמות. תיעוד (documentation) נושא התיעוד הינו נושא מרכזי וחשוב בפיתוח תוכנות מחשב. בתהליך פתוח התכנית משתתפים מתכנתים רבים. תיעוד התכנית מסייע למתכנת להבין את הרעיון שעומד מאחורי הקוד שכתב מתכנת אחר, או במקרה של מפתח יחיד, התיעוד מסייע להיזכר בקו המחשבה שליווה אותו במהלך פיתוח התכנית כשירצה לתחזק אותה או לשדרגה בשלב מאוחר יותר. במשך הזמן התפתחו מוסכמות )conventions( של כללים בכתיבת תוכנה. אמנם המחשב אינו זקוק לכללי כתיבה - התוכנית תרוץ גם אם לא נעבוד לפיהם, אך הם בהחלט מחייבים בקהילת המתכנתים ובתי התוכנה. כללים אלו תורמים לקריאות )readability( התוכנית ומסייעים בתחזוקה השוטפת שלה. סביבות העבודה החדשות, הנהוגות כיום, כוללות בתוכן הכנה לתעוד בצורות שונות. הערות ההערות הינן כלי תחבירי של השפה באמצעותו ירשם התיעוד בתכנית. הערות הינן קטע בתכנית שאינו חלק מהוראות השפה ונועד להבהיר למתכנתים אחרים את התכנית. להערות סימון מיוחד שנועד להבהיר למהדר )קומפיילר( שלא מדובר בהוראות השפה ויש להתעלם מקטע זה. שים לב שבסביבת העבודה, מסומנות ההערות בצבע מיוחד. נבחין בין שני סוגים של הערות: הערת קטע: /* הערת קטע */ הערה היכולה להשתרע על פני מספר שורות. הערת קטע נפתחת בסימן */ ומסתיימת בסימן /* )ההערה נתחמת בתוך סימני הלוכסן וכוכבית צמודים ללא תו רווח ביניהם(. גוף ההערה יכול להיכתב בשפה חופשית, כולל בשפה העברית. שים לב שהעורך מוסיף כוכבית בתחילת כל שורה. כוכבית זו הינה רשות ולא חובה. הערת שורה: הערה מסוג זה מתחילה בסימן // ומסתיימת בסוף השורה.

2-4 תיעוד התוכנית השורות הראשונות בתוכנית הן כותרת התוכנית. שורות אלו כוללות מידע כללי על התוכנית, הרשום בצורה של הערות. לפי דרישת תכנית הלימודים, חובה לרשום תיעוד בראש כל תכנית. התיעוד יכול להירשם בשפה חופשית המתארת את קלט התכנית ומטרתה או בצורה פורמאלית כמתואר בדוגמא שלהלן. נהוג לרשום את המידע הבא: קלט - מאפייני הקלט של התוכנית. פלט - פלט של התוכנית. תיעוד התכנית יסומן כהערת קטע: מילים שמורות דוגמא לתעוד: /* קלט: a צלע הריבוע * פלט: s שטח הריבוע * */ בכל שפת תכנות קיימות מילים שמורות. מילה שמורה היא מילה שהשימוש בה והמובן שלה שמורים לשימוש בלעדי ע"י השפה ולא ניתן לשנות את משמעותה. מילים שמורות מסומנות בצבע מיוחד בתכנית. בספר זה המילים השמורות מופיעות בקוד התכנית בגופן מודגש. עיצוב כללי המספור שמשמאל לשורות אינו שייך לתוכנית, אך מסייע להתמצאות בתכנית. מרבית סביבות העבודה מאפשרות להציג מספור זה. הוספת שורות בין שורות התכנית תגרום לעדכון אוטומטי של המספור. התוכנית לביצוע תהיה מורכבת מהוראות השפה ותיכתב בתוך הסוגריים המסולסלים תוך שמירה על כללי כתיבה מקובלים כמו הזחות (indent) - הקובעות את מיקום תחילת השורה ביחס לשורה שלפניה. חשוב להקפיד על הזחות ברורות. בדרך כלל קובע העורך )editor( של סביבת העבודה את ההזחות בצורה אוטומטית. ההזחות תורמות לקריא ות התוכנית. יש עורכים הקובעים אוטומטית את מיקומם של הסוגרים המסולסלים של תחילת הבלוק: public class ClassName public class ClassName שתי צורות הכתיבה נכונות, ושתיהן תופענה בספר. כל הוראה בשפת #C חייבת להסתיים בסימן נקודה-פסיק ( ; ). תווי רווח :(whitespace) תווי רווח הינם רווחים בין המילים, טאבים (tab) וירידת שורה )מקש.(Enter המהדר מתעלם מתווי רווח. המשמעות - בכל מקום בו מותר תו רווח אחד, מותר לשים הרבה תווי רווח ואף לעבור לשורה חדשה. ריווח התכנית תורם לנוחות הקריאה. שים : למרות האמור לעיל, המהדר אינו מתעלם מתווי רווח בתוך מחרוזת טקסט המופיעה בין גרשיים. הקשה על מקש Enter בתוך מחרוזת טקסט יגרור הודעת שגיאה.

2-5 שפת #C הינה שפה תלוית ראשיות sensitive),(case כלומר גדולות case) (upper ואותיות קטנות case).(lower המילים למילים שונות בשפה. חובה להקפיד על גודל אות מתאים. קיימת הבחנה בין אותיות Main ו- main נחשבות משתנים תכניות פועלות על מידע. המידע עליו פועלת התכנית נמצא בזיכרון המחשב בזמן הפעולה. משתנה )variable( הוא תא זיכרון אשר ניתן לשמור בו ערך ולקרוא )ל אחז ר - )Retrieve את הערך השמור בו במהלך ביצוע התכנית. ערך זה נקרא ערך המשתנה. הכינוי "משתנה" נובע מכך שבמהלך ביצוע התכנית ניתן לשנות את ערכו שוב ושוב. בזמן פיתוח אלגוריתם/תכנית בוחר המתכנת במשתנים אשר ישמשו לשמירת נתוני קלט ולשמירת תוצאות חישוב שיתקבלו במהלך ביצוע התכנית. כדי להשתמש במשתנים אלו בתוכנית, יש להכריז )declare( על המשתנים איתם נעבוד. פניה למשתנה נעשית באמצעות שם הניתן לו על ידי המתכנת. שם זה הוא שם המשתנה. משתנה יכול לקבל ערך באחת משתי הצורות הבאות: משפט השמה. המתכנת קובע את ערך המשתנה בזמן כתיבת התכנית. משפט קלט. התכנית קולטת ערך מהמקלדת במהלך הביצוע. הקלט מוזן על ידי המשתמש בתכנית. שימוש במשתנה )בערך המשתנה(: ניתן לבקש להדפיס את תוכן המשתנה בהוראת פלט. ניתן להתייחס לתוכן המשתנה לביצוע פעולות שונות. ניתן לשמור במשתנים את התוצאות של חישובים שונים שבוצעו במהלך התכנית. תכונות כלליות של משתנים ניתן להכריז על משתנים בכל מקום בתכנית, ובלבד שנכריז עליהם לפני השימוש הראשון בהם. אף על פי כן, ולמען הסדר הטוב, נשתדל לרכז את כל שורות ההכרזה בתחילת התכנית. במשתנה נשמר הערך האחרון שהושם בתוכו. המשתנה אינו "זוכר" מה היה בו לפני כן. מתן ערך התחלתי למשתנה נקרא א ת ח ול. לכל משתנה יש ערך. הערך של משתנה שעדיין לא ביצענו לו השמה אינו ידוע. מנקודת המבט של המתכנת ערך המשתנה אינו מוגדר למרות שתמיד יש בו ערך כלשהו. במהדרים מסוימים, אי אתחול משתנה יגרור הודעת שגיאה. יש לוודא שכל משתנה מקבל ערך התחלתי לפני שמשתמשים בו.

2-6 הכרזה על משתנים בתכנית ככלל, משתנה חייב להיות מוגדר לפני השימוש הראשוני בו. נהוג להגדיר את משתני הפעולה בתחילת הפעולה לפני ההוראות לביצוע, באופן הבא: 1. /* )תיעוד התכנית( */ 2. using System; 3. class MainClass 4. 5. public static void Main () 6..7 --- הצהרה על משתני התכנית ---//.8 ; משתנה 1 טיפוס-משתנה.9 משתנה 4,משתנה 3,משתנה 2 טיפוס-משתנה ;.10 --- גוף התכנית החלק הביצועי ---// 11. ; הוראה 12. ; הוראה 13. 14. חובה להצהיר על כל משתני התכנית. מספר שורות ההגדרה אינו מוגבל. אין לכלול משתנים מטיפוסים שונים באותה שורת הגדרה. נהוג להכריז על משתנים בעלי תפקידים דומים באותה שורה, ולספק תיאור של תפקיד המשתנה כהערה בקצה השורה. לכל משתנה יש טווח הכרה.(scope) משתנה מוכר וקיים בתוך הבלוק שבו הוא נוצר. כלומר - משתנה שהוגדר בפעולה אחת, אינו מוכר בפעולה אחרת. שם משתנה שם משתנה חוקי יכול להיות מורכב מסדרה של אותיות באנגלית, ספרות וקו תחתי _, וחייב להתחיל באות. אסור לכלול תווי רווח וסימנים אחרים בשם המשתנה. שם משתנה אינו יכול להכיל אותיות עבריות. שפת #C היא שפה תלוית רישיות sensitive),(case כלומר יש חשיבות לגודל אות. מקובל שאם שם החל מהמילה השניה, באות גדולה. לדוגמא: המשתנה מורכב ממספר מילים, תתחיל כל מילה,.newNum, numberofstudents, בגלל הרגישות לגודל אות, הרי שהשמות: mynumber newnum, NewNum, newnum מתייחסים לשלושה משתנים שונים.. start, old, firstname, number, size37 שמות חוקיים: )מדוע )? why?, a#5, -number, first-second, name.2, family name שמות לא חוקיים: מילים שמורות אינן יכולות לשמש כשמות של משתנים. שים :

2-7 מוסכם ששמות משתנים יהיו תמיד שמות משמעותיים המתארים את השימוש במשתנה. דוגמאות: משתנה האמור להכיל שם של תלמיד ייקרא - name או.studentName משתנה האמור להכיל גיל ייקרא gil או.age משתנה האמור להכיל את גודל החדר ייקרא - size או roomsize. טיפוסי משתנים לכל משתנה יש להגדיר את סוג הנתונים שלו type).(data סוג הנתונים של המשתנה קובע איזה ערכים יוכל המשתנה להכיל ואלו פעולות ניתן לבצע על המשתנה. שפת #C מספקת מספר סוגים של משתנים בסיסיים )משתנים פרימיטיבים(, שבהם ניתן לאחסן מידע מספרי, מידע טקסט )מחרוזת טקסט( או מידע לוגי )"אמת" או "שקר"(. כל סוג משתנה הוא בעל דרישות אחסון שונות בזיכרון המחשב ונבדל בסוג המידע שניתן לאחסן בתוכו ובסוג הפעולות אותו ניתן לבצע על מידע זה. לכל משתנה בשפה יש מחלקה המגדירה אותו וקובעת את התכונות )תחום הערכים שהוא יכול לקבל( והפעולות אותן ניתן לבצע במשתנים אלו. בתכנית הלימודים יסודות נשתמש רק בחלק מטיפוסי הנתונים הקיימים בשפה. 2,147,483,648- ועד (integer) משתנה מטיפוס מספרי שלם - int int הוא משתנה מטיפוס מספרי שלם. התופס 4 בתים )32 סיביות( בזיכרון. תחום הערכים שהוא יכול לקבל הוא מ- 2-31 ועד 2+, 31 1- כלומר מ- 2,147,483,647+. ניתן להוסיף סימני +/- לנתון המספרי. דוגמאות: -2, 0-641, 1996,, +17, 9 - double משתנים מטיפוס מספר ממשי point) (floating לטיפול ואחסון מספרים ממשיים )מספרים בעלי נקודה עשרונית(, קיימים שני טיפוסי משתנים עיקריים: float ו-.double ברירת המחדל של #C הוא double המיוצג על ידי 8 בתים )64 סיביות(. מידת הדיוק שלו הוא 15 עד 16 ספרות אחרי הנקודה העשרונית. )אם נרצה להשתמש במספרים מטיפוס float )בעל 7 ספרות ישמר במשתנה מסוג float ולא double 3.14F לדוגמא: דיוק(, נוסיף את האות F לקבוע המספרי. לפי ברירת המחדל.( דוגמאות למספרים ממשיים: - 583.12, 3.2456, 4.0 0.0091, - char משתנה מטיפוס תווי (character) תווים הם אותיות, ספרות )להבדיל ממספר( וסימני טקסט שונים. תו מיוצג בשפה על ידי תחימתו בין גרש שמאלי לגרש ימני: '3', '@', 'a'. המחשב אינו מזהה תווים. הוא מסוגל לזהות רק מספרים, לכן כל התווים מאוחסנים כערכים מספריים. כדי להבטיח שכל יצרני המחשבים בעולם ישתמשו באותם ערכים, הוגדר תקן שנקרא בשם Unicode שבו כל תו וסימן מיוצגים על ידי מספר שלם המתאים רק לו. משתנה מסוג char יכול להכיל ערך מספרי המתאים לתו אחד ויחיד. גודל הזיכרון שתופס משתנה זה הוא 2 בתים )16 סיביות( ומכאן שטבלת Unicode מכילה ייצוג של ) 65,536 = 16 2) תווים שונים.

2-8 - string מחרוזת )string( מחרוזת בשפת #C הינה אובייקט מיוחד שנועד לעבודה עם טקסטים. מחרוזת מיוצגת בשפה על ידי תחימתה במירכאות כפולות )גרשיים(: " "Hello, have a nice day. בשלב זה נעשה הכרות ראשונית עם המחרוזת. כדי שנוכל לכתוב תוכניות ברורות יותר. נושא המחרוזות נידון בהרחבה בפרק 12. bool משתנה מטיפוס בוליאני טיפוס הנתונים הבוליאני משמש לבדיקת נכונותם של פסוקים. בעזרתו נוכל לדעת האם משהו מתקיים או לא מתקיים, אמת או שקר, נכון או לא נכון וכד'. משתנה מטיפוס בוליאני תופס בית אחד )8 סיביות( בזיכרון, ויכול לקבל ערך אמת - true או שקר - false בלבד. דוגמא להצהרה על משתנים: 1. /* )תעוד התכנית( */ 2. using System; 3. class MainClass 4. 5. public static void Main () 6. 7. yy; int dd, mm, משתני התאריך: יום, חודש, שנה // 8. age; double גיל // 9. name; string שם //.10 --- גוף התכנית החלק הביצועי ---// 11. ; הוראה 12. ; הוראה 13. 14. בדוגמא שלעיל שורה 7 מכריזה שבתוכנית נשתמש במשתנים ששמותיהם mm, dd ו-.yy הקידומת int פרושה שהמשתנים הם מטיפוס )סוג( של מספר שלם.)integer( בשורה 8 הוצהר על משתנה בשם age מטיפוס,double טיפוס משתנה המכיל מספר ממשי - מספר הכולל חלק עשרוני. בשורה 9 הוצהר על משתנה בשם name מטיפוס מחרוזת )טיפוס המכיל אותיות ומילים(. קבועים לעיתים נוצר צורך להשתמש בנתון מסויים שיישאר קבוע בכל התכנית, ולא ניתן יהיה לשנותו. הנתון יכול להיות מחרוזת, מספר שלם או מספר ממשי. הכרזה על קבוע נעשית באמצעות המילה השמורה,const בחלק שבו מצהירים על המשתנים. ההכרזה קובעת ערך סופי לקבוע ואין אפשרות לשנותו בהמשך התכנית. ; >ערך קבוע< = >שם- הקבוע< >טיפוס- נתונים< const כדי להקל על זיהוי קבועים, נהוג לרשום את שמותיהם באותיות גדולות case).(upper אם שם הקבוע מכיל יותר ממילה אחת, נשתמש בקו תחתי כמפריד בין המילים. לדוגמא:.MAX_VALUE הרחבה על קבועים ראה בפרק - 7 לולאות.

2-9 טיפול במשתנים הוראות פלט - השמה וקלט כדי ליצור אינטראקציה בין המשתמש בתכנית והתכנית עצמה משתמשים בהוראות קלט ופלט. בעוד שהוראות הקלט משמשות לקבלה והכנסה של נתונים מן המשתמש לתוך המשתנים, הרי שהוראות הפלט נועדו להציג את תוכן תאי הנתונים. הוראות הקלט והפלט בשפת #C נעשות דרך המחלקה Console המציעה אוסף של פעולות המטפלות בקלט מידע מהמקלדת ופלט לחלון ה- Console של מערכת ההפעלה, הלא הוא המסך. הפעלת פעולה של מחלקה נעשית בדרך הבאה: ) )שם-הפעולה.שם-המחלקה ClassName.MethodName ( ) הוראות פלט שליחת מידע לאמצעי הפלט הסטנדרטי )המסך(: ; ) המידע שיוצג על המסך ( Console.Write ; ) המידע שיוצג על המסך ( Console.WriteLine המידע המועבר לפעולה יכול להיות: Console.WriteLine (5); קבוע מספרי: Console.WriteLine ("Have a nice day"); קבוע מחרוזתי: Console.WriteLine (num); תוכן של משתנה: Console.WriteLine ("There were " + count + " items"); צירוף של מחרוזות ומשתנים: צירוף של פרטי מידע נקרא שרשור. הוראת Console.Write מדפיסה את המידע ומשאירה את הסמן במקום בו הסתיימה ההדפסה. ההוראה Console.WriteLine מדפיסה את המידע ומעבירה את הסמן לתחילת השורה הבאה. מכאן שקטע ההוראות הבא: שקול להוראה: Console.Write ("My lucky number "); Console.Write ("is : "); Console.Write (num); Console.WriteLine(); Console.WriteLine ("My lucky number is : " + num); :(Markers) מאפשרת להציג את הפלט תוך שימוש בסמנים #C ; ; (משתנה 1, משתנה 0, "מחרוזת 1 מחרוזת 0 מחרוזת") Console.Write (משתנה 1, משתנה 0, "מחרוזת 1 מחרוזת 0 מחרוזת") Console.WriteLine

2-10 דוגמא: avg); Console.WriteLine ("Average grade of 0 and 1 is 2", grd1, grd2, השימוש בדרך זו מתאימה לפלט מעוצב כפי שיוסבר בהמשך, בסעיף הדן בפורמט הדפסה. שורות ריקות בפלט לעיתים נרצה להציג שורות ריקות במסך הפלט. לשם כך נשתמש בפעולה אם נרצה להשאיר שתי שורות ריקות, נוכל לרשום: Consol.WriteLine (); Consol.WriteLine ("\n"); המחרוזת "n\" משמעותה "רד לשורה הבאה" כלומר השארת שורה ריקה. ההוראה WriteLine תציג על המסך את תוכן המחרוזת n\ )שמשמעותה "רד לשורה הבאה"( ואחר כך תרד שורה )כי כך נוהגת WriteLine להבדיל מ-.)Write אם נרצה שלוש שורות ריקות, נרשום: )כל n\ יגרום לירידת שורה נוספת). Consol.WriteLine ("\n\n"); כשמשתמשים בשיטה )פעולה(,Write() נשאר ראש הכתיבה באמצע השורה, במקום בו הסתיימה הכתיבה למסך. הפעלת השיטה WriteLine() תגרום להעברת ראש הכתיבה לתחילתה של השורה תגרום לירידה לשורה הבאה ובנוסף השארת ;("n\") Consol.WriteLine הבאה. ואילו ההוראה: שורה ריקה. שרשור )צירוף( מחרוזות שרשור מחרוזות הוא צירוף מחרוזת אחת לסופה של האחרת. )שרשור מהמילה 'שרשרת', צירוף מחרוזות של תווים בזו אחר זו כמו חוליות בשרשרת(. פעולת השרשור נעשית באמצעות האופרטור + )חיבור( הפועלת על משתני מחרוזת וקבועים מחרוזתיים. פעולת השרשור להדפסת מחרוזות: אם נרצה לשרשר מחרוזת וביטוי חשבוני, נתחום את הביטוי החשבוני בסוגריים. לדוגמא: המחרוזת המתקבלת string name = "Dany"; Console.WriteLine ("Hello, " + name); ההוראה string str = "number is: "; int a = 5; Console.WriteLine ("a is: " + a + " next " + str + a + 1); a is: 5 next number is: 51 Console.WriteLine ("a is: " + a + " next " + str + (a+1)); a is: 5 next number is: 6 עברית בסביבת #C לצערנו, סביבת העבודה של #C אינה תומכת בעברית כראוי. מחרוזות פלט שמופיעות בגוף התכנית בשפה העברית מוצגות כג'יבריש במסך הפלט. לצורך הנוחות והקריאות, מוצגות חלק ממחרוזות הפלט בעברית. תלמיד רשאי לכתוב במחברתו מחרוזות בעברית, ובלבד שיזכור לתרגמן לאנגלית בשלב כתיבת התכנית במחשב. יוצא מן הכלל הוא הערות ותיעוד, שאינם מופיעים בפלט, ולכן ניתן לתעד את התכנית בעברית. שים לגודל האות בשם מחלקה ובשם הפעולה. )האות הראשונה בתחילת כל מילה הינה אות ראשית(

2-11 הוראת השמה א. הוראת השמה משמשת את כותב התכנית להכנסת נתונים לתוך המשתנים. השמת נתון למשתנה מוחקת את הערך שהיה שמור במשתנה זה ושומרת את הערך החדש בלבד )ומכאן משתנה המשנה את ערכו(. השמת קבוע מתכנת יכול להחליט מראש על ערך קבוע הדרוש לו בשלב מאוחר יותר בתכנית. int a, b, c ; double x, y, z ; string greeting ; a = 5 ; b = -39 ; x = 2.35 ; greeting = "hello world!"; = ; קרא: >שם-משתנה< מקבל >קבוע< // >קבוע< >שם-תא-מקבל< השמה של קבוע למשתנה שימושית לפעולה של אתחול בהגדרה. ניתן לתת למשתנים ערך התחלתי בשלב ההגדרה. דוגמא: int a = 5, b = 21 ; double x = 7.32 ; string str = "abc" ; שים : טיפוס הערך המושם בתא חייב להיות תואם את טיפוס הנתונים של התא המקבל. ב. השמת ערך ממשתנה אחר ישנם מצבים בהם מעוניין כותב התכנית להעביר ערך ממשתנה אחד למשתנה אחר. למשל, כשהוא מעוניין לשמור, לשימוש בהמשך, ערך הנמצא במשתנה מסויים, כאשר למשתנה זה עומד להיכנס ערך חדש. ; >שם-תא-נותן< = >שם-תא-מקבל< int a = 12, b = 5, c ; double x = 5.24, y, z ; z = x ; y = b ; c = a ; משתנה מטיפוס ממשי )double( יכול לקבל תוכן של משתנה ממשי או של משתנה שלם. משתנה מטיפוס שלם יכול לקבל תוכן של משתנה שלם בלבד.

2-12 : שים ניסיון להשמת ערך ממשי )המכיל נקודה עשרונית(, קבוע או מתוך משתנה, בתוך משתנה מטיפוס שלם הינו שגיאה. השמה הפוכה של שלם לתוך ממשי הינה אפשרית. לדוגמא: השמת x לתוך c יגרור את הודעת השגיאה הבאה: Cannot implicitly convert type 'double' to 'int' שפירושה: אין אפשרות להמיר משתנה מטיפוס ממשי לשלם. הרחבה בפרק 4. מועבר רק עותק מהמשתנה הנותן. ערכו של משתנה זה אינו משתנה. אם במשתנה המקבל היה ערך כלשהו, ערך זה נמחק בעת ההצבה. ג. השמת תוצאה של חישוב ברוב המקרים, הערך אותו רוצים להציב במשתנה הוא תוצאה של חישוב. למשל, כאשר רוצים לחשב שטחו של מלבן, יש לכפול את אורכו ברוחבו. התכנית חייבת אם כן, לכלול פקודה שתורה למחשב להציב במשתנה המיועד לשטח המלבן את מכפלת אורך המלבן ברוחבו. הערכים הנכללים בביטוי הם קבועים-מספרים או ערכים השמורים במשתנים מספריים. פעולת החישוב היא אחת מפעולות החשבון כפל, חילוק, חיבור ו/או חיסור. מבנה השורה במקרה זה יהיה כמו במקרים הקודמים, אלא שמימין לסימן ההשמה יופיע ביטוי חשבוני. ; >ביטוי חשבוני< = >שם-משתנה-מקבל< c = a + 5 ; y = x 2*a ; z = (a y) / (a * b) ; דוגמאות: הביטוי החשבוני הוא החלק שנמצא מימין לסימן ההשמה =. הביטוי יכול לכלול: קבועים מספריים, משתנים, חישובים מתמטיים ואף ערך מוחזר מפונקציות מתמטיות )כפי שנלמד בפרק 5(. הפעולות החשבוניות: חיבור חיסור כפל חילוק + * / שים : סדר הקדימויות של החישובים המתמטיים הוא סדר הקדימויות המתמטי: כפל וחילוק קודמים לחיבור וחיסור. סוגריים משנים את סדר החישוב. המשתנה לא יכיל את הביטוי החישובי אלא את תוצאת הפעולה, כלומר ערך מספרי. לאחר פעולת ההשמה, המחשב לא "זוכר" את הערך שהיה במשתנה קודם לכן. תוצאה של פעולה חישובית שבה מעורב ערך ממשי )קבוע או משתנה( תהיה תמיד ממשית. יש להקפיד שהמשתנה המקבל את התוצאה יהיה ממשי. ראה הרחבה בפרק 4.

2-13 דוגמא: התכנית שלהלן ממירה סכום כסף הנתון בדולרים לערכם בש"ח בהתאם לשער המרה. לצורך העניין, נבצע המרה של $100 לשקלים, לפי שער המרה של: = $1 4.5. טבלת משתנים: שם המשתנה dollar טיפוס המשתנה int double double yatzig shekel הסכום בדולרים השער היציג הסכום בשקלים תפקיד המשתנה חשוב: מדוע יש לקבוע את משתנה השקלים כמשתנה מטיפוס ממשי? )מה יקרה אם נקבע אותו להיות משתנה מטיפוס שלם?(. האלגוריתם: dollar 100 )1( yatzig 4.5 )2( shekel dollar * yatzig )3( פלט: הערך בשקלים הוא: shekel )4( /*~~~~~~~~~~~~~~~~~~~~~~~~ * * המרה מדולרים לשקלים * *~~~~~~~~~~~~~~~~~~~~~~~~ */ using System; class Class1 public static void Main () int dollar; double yatzig, shekel; התכנית: dollar = 100; yatzig = 4.5; shekel = dollar * yatzig; Console.WriteLine ("the value is: " + shekel + " nis."); החיסרון של התכנית הוא שתמיד יומר סכום של $100 לפי שער יציג שנקבע ביום מסויים. כדי להמיר סכומים שונים בשער יציג עדכני, נזדקק לפעולת קלט, שתקלוט מן המשתמש את הסכום שברצונו להמיר ואת שער הדולר העדכני.

2-14 הוראת קלט בעזרת הוראה זו ניתן לקלוט, בזמן ריצת התכנית, נתונים מן המשתמש ולשמור אותם במשתנים שהחלטנו עליהם מראש. ההוראה מאפשרת לתכנית לקרוא מן המסך )באמצעות המחלקה (Console מידע שכתב עליו המשתמש, באמצעות המקלדת. Console.ReadLine(); = משתנה הפעולה ReadLine קוראת טקסט )תווים - )chars מן המקלדת )עד שנתקלת הסימן של )Enter ומחזירה מחרוזת )קטע טקסט(. את המחרוזת המוחזרת יש להכניס לתוך משתנה. מקש ה- קלט למשתנה מספרי כבר ראינו שלכל אחד מטיפוסי המשתנים יש ייצוג שונה במחשב. ולכן, אם הקלט שלנו הוא מחרוזת יושם הערך המוחזר בתוך משתנה מטיפוס מחרוזת, אבל אם נרצה לקלוט מספר, עלינו להמיר )לתרגם( את הקלט מייצוג של טקסט לייצוג של מספר לפי סוג המשתנה. הפעולה Parse המבצעת המרה ממחרוזת למספר ושייכת למחלקה של המשתנה המספרי. לדוגמא, אם נרצה להמיר מחרוזת למספר שלם, נשתמש בפעולה: ; )"מחרוזת המכילה ספרות") int.parse ואם נרצה להמיר מחרוזת לממשי, נשתמש בפעולת ההמרה של.double נחבר את שני השלבים של קריאת מחרוזת + הפיכה לשלם, ונקבל הוראת קלט למספר שלם: ואם נרצה לקלוט מספר ממשי: int num ; num = int.parse(console.readline( )) ; double x; x = double.parse (Consol.ReadLine( )); קלט למשתנה תווי char ch; ch = char.parse (Consol.ReadLine( )); ch = (char)console.read(); או: הדרך הראשונה לוקחת את מחרוזת הקלט וממירה אותו לתו. אם נקלט יותר מתו אחד במחרוזת הקלט, יתעלם המחשב משאר התווים. הדרך השנייה מתאימה למקרים בהם יש לבצע פעולה על קבוצה של תווים. בדרך זו ניתן להקליד את רצף התווים בבת אחת, והמחשב ייקח בכל פעם את התו הבא.

2-15 שים : קלט חוקי עבור מספר שלם מורכב מספרות וסימני +/- לפני הספרה הראשונה. ניסיון להקליד תווים או נקודה עשרונית, יגרור הודעת שגיאה מסוג חריגה )exception( כלומר: חריגה מהכללים. ובהמשך הודעה הכוללת את המשפט: Input string was not in a correct format שמשמעותה: מחרוזת הקלט שגויה. קלט חוקי עבור מספרים שלמים מורכב מספרות ומסימני +/- לפני הספרה הראשונה. )אין חובה לשים + לפני מספר חיובי( קלט חוקי עבור מספרים ממשיים מורכב מספרות, מנקודה עשרונית, מסימני +/- לפני הספרה הראשונה ואת האות E כמעריך למספר בייצוג מדעי. ניסיון להקליד קלט אחר יניב הודעת שגיאה דומה: הקלט אינו מהטיפוס הדרוש. מספר שלם שייקלט למשתנה מטיפוס ממשי, יהפוך להיות מספר ממשי על ידי הוספת 0 אחרי הנקודה העשרונית. אם יוקלד יותר מתו אחד למשתנה מטיפוס,char יאוחסן בתא התו הראשון בלבד. נשנה את התכנית שלנו, כך שייקלט המידע הדרוש מן המשתמש: האלגוריתם: )1( )2( )3( )4( התכנית: קלט: הסכום בדולרים dollar קלט: השער היציג yatzig shekel dollar * yatzig פלט: הערך בשקלים הוא: shekel /*~~~~~~~~~~~~~~~~~~~~~~~~ * * המרה מדולרים לשקלים * *~~~~~~~~~~~~~~~~~~~~~~~~ */ using System; class Class1 public static void Main () int dollar; double yatzig, shekel; Console.Write("How many dollar you want to convert? "); dollar = int.parse(console.readline()); Console.Write ("What is the rate of the dollar? "); yatzig = double.parse(console.readline()); shekel = dollar * yatzig; Console.WriteLine ("the value is: " + shekel + " nis.");

2-16 פורמט הדפסה - שליטה על מראה הפלט הוראות ההדפסה גורמות להדפסת הנתונים בצורה שנקבעה מראש. שימוש בסמנים Console.WriteLine ("first value 0 second value 1 third value 2", val0, val1, val2); הסמן 0 מוחלף על ידי הערך.val0 הסמן 1 מוחלף על ידי הערך val1 והסמן 2 על ידי הערך.val2 הסמן יהיה מספר שלם התחום בסוגרים מסולסלים. ערך הסמן הראשון יהיה תמיד ערכי כל סמן הבא אחר כך יהיה עוקב לערך הסמן הקודם לו. דילוג בסדר המספור הרציף יגרום לשגיאה בתכנית..0 לאחר סגירת המחרוזת יש לרשום את תוכן המשתנים או הקבועים אותם יש להדפיס, כך שכל משתנה או קבוע מתאים לסמן שלו, לפי סדר הופעתם במחרוזת. את הערכים יש להפריד בפסיקים. סדר הסמנים במחרוזת אינו חשוב, ובלבד שהוא יתאים לערך שיחליף אותו. Console.WriteLine ("The sum of 2 and 1 is 0", 5, 4, 5+4); כל סמן יכול להופיע יותר מפעם אחת. Console.WriteLine ("0 is grater then 1, 1 is grater then 2. Therefore 0 is grater then 2", a, b, c); שים : פיצול הוראה לשתי שורות או יותר אינה משפיעה על הביצוע. פורמט הדפסה לטקסט על מנת לשמור על מרווח אחיד בפלט, ניתן לקבוע כמה תווי מסך יוקצו לכל סמן. Console.WriteLine ("Your name is 0,7 1,8", "Burt", "Simpson" ); והפלט יהיה: _ B u r t S i m p s o n )הסימן _ מציין תו אחד במסך( הערכים שיחליפו את שלושת הסמנים ישתרעו על פני 7 ו- 8 תווי מסך בהתאמה, כאשר היישור יהיה לצד ימין. אם נקבע רוחב מרווח קטן ממספר הספרות שבמספר, תתעלם ההוראה מגודל המרווח, והמספר יוצג בשלמותו. על מנת ליישר את הערכים לצד שמאל, נרשום גודל מרווח שלילי: והפלט יהיה: Console.WriteLine ("Your name is 0,-7 1,-8", "Burt", "Simpson"); B u r t _ S i m p s o n _

2-17 פורמט הדפסה למספרים כדי שנוכל להציג מספרים באופן ברור יותר, ניתן להגדיר את רוחבו של שדה ההדפסה בתוספת דיוק עשרוני למספרים ממשיים, או הפרדת פסיקים לאחר כל 3 ספרות למספרים ארוכים. רוחב שדה הדפסה: מספר תווי המסך המוקצים להדפסת הערך. הדפסת מספר שלם: Console.WriteLine ("Num = 0", num); הערך שבמשתנה num יחליף את הסמן 0. המרחק של הערך מהתו תווי הרווח שבין התו '=' לסמן. הקפד שיופיע לפחות תו רווח אחד. '=' מותנה במספר הדפסת מספר שלם תוך ציון רוחב שדה ההדפסה )מספר תווי המסך(: Console.WriteLine ("Num = 0,5)", num); המספר יודפס ב- 5 תווים מיושר לימין. ההוראה לא מקצצת במספר. כלומר, אם מספר הספרות במספר גדול מהרוחב שהוקצה, תתעלם ההוראה מרוחב זה ותציג את המספר בשלמותו. קביעת רוחב שדה "שלילי" תגרום ליישור המספר לשמאל. הדפסת מספר ממשי: Console.WriteLine ("Average is 0", avg); הערך המספרי שב- avg יחליף את הסמן 0. הדפסת מספר ממשי תוך ציון מספר הספרות אחרי הנקודה העשרונית: Console.WriteLine ("Average is 0:F1", avg); ההוראה אינה משפיעה על תוכן המשתנה אלא על אופן התצוגה בלבד. הספרה 1 קובעת שתצוגת המספר תעוגל לדיוק של 1 ספרות עשרוניות. ברירת המחדל אם לא צוינה סיפרה היא 2 ספרות עשרוניות. הדפסת מספר ממשי בדיוק עשרוני קבוע תוך שימוש ברוחב שדה ההדפסה: Console.WriteLine ("Average is 0,8:F2", avg); תוכן המשתנה avg יוצג ב- 8 תווים, מיושר לימין ובדיוק של 2 ספרות אחרי הנקודה העשרונית. שים : הנקודה העשרונית תופסת מקום אחד. הדפסת מספר שלם ארוך: Console.WriteLine ("There is a 0 dollar in the bank", 1000000); הפלט There is a 1000000 dollar in the bank מוצג בצורת המקשה על קריאת המספר. הפרדת המספר בפסיקים: Console.WriteLine ("There is a 0:N dollar in the bank", 1000000); תגרום להצגת הפלט בצורה ברורה יותר: There is a 1,000,000 dollar in the bank

2-18 באופן כללי, נשיג שליטה על רוחב שדות ההדפסה בעזרת המבנים הבאים: עבור מספרים שלמים )משתנה או קבוע מספרי(: ; ) משתנה 0", (" Console.WriteLine ; ) משתנה n", Console.WriteLine (" 0, ± ; ) משתנה 0:N", Console.WriteLine (" ; ) משתנה n:n", Console.WriteLine (" 0, ± עבור מספרים ממשיים )משתנה או קבוע מספרי(: ; ) משתנה ("0", Console.WriteLine ; ) משתנה ("0:F", Console.WriteLine ; ) משתנה ("0:Fn", Console.WriteLine ; ) משתנה n:fn", Console.WriteLine ("0, ± n הערות: אין חשיבות לגודל האות במתגים F ו-. N מייצג מספר שלם וחיובי.

2-19 תכנית דוגמא המציגה פורמט הדפסה: /*~~~~~~~~~~~~~~~~~~~~~~~~~~ * * תכנית להצגת פורמט הדפסה * *~~~~~~~~~~~~~~~~~~~~~~~~~~ */ using System; class Class1 static void Main() double x, y, z; Console.Write ("Type 1st number ---> "); x = double.parse(console.readline()); Console.Write ("Type 2nd number ---> "); y = double.parse(console.readline()); Console.Write ("Type 3rd number ---> "); z = double.parse(console.readline()); Console.WriteLine(); Console.WriteLine ("1st number is: 0,10:F2", x); Console.WriteLine ("2nd number is: 0,10:F2", y); Console.WriteLine ("3ed number is: 0,10:F2", z); Console.WriteLine ("0,26","----------") ; Console.WriteLine ("the sum is: 0,10:F2", x+y+z ) ; ~~~~~~~~~~~~~ פלט התכנית: ~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ Type 1st number ---> 2.5 Type 2nd number ---> 123.062 Type 3ed number ---> 11 1st number is: 2.50 2nd number is: 123.03 3ed number is: 11.00 -------- the sum is: 136.53 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ שים : הנקודה העשרונית תופסת מקום אחד מ- 10 התווים שהוקצו לרוחב שדה ההדפסה.

2-20 תרגילים משתנים 1. קבע אלו מבין הביטויים הבאים הוא שם תקין של משתנה : ) 1( Y ) 2( 3to2 (3) x_to_y (4) A4 (5) x y (6) X% (7) main (8) newnum (9) Abcd ) 10( My-Name מדוע רצוי ששמות משתנים בשפה יהיו משמעותיים?.2 איך ניתן לשלב הערה בתוכנית? מה חשיבות כתיבת הערות בתכנית?.3 האם ניתן לכתוב הערה בכל מקום בתכנית? )גם באמצע מילה?( ברצוננו לשמור במשתנים בתכנית את המידע הבא: מספר התלמידים בכיתה. א. שם בית הספר. ב. השנה הנוכחית. ג. מספר קטלוגי של פריט. ד. מחיר הפריט. ה. כמות. ו. הרווח לאותו פריט. ז. שם הפריט. ח. קבע עבור כל משתנה את טיפוס המשתנה וכתוב הצהרות מתאימות למשתנים אלו..4

2-21 והוראות פלט בכל אחת מהקביעות הבאות, הקף בעיגול אם נכון או לא נכון. אם לא נכון, תקן את המשפט 5. כך שיהיה נכון. בכל תכנית חייבת להיות הפעולה.Main א. נכון / לא נכון כדי לקבל קובץ ריצה, חובה לבצע פעולת הידור על הקובץ. ב. נכון / לא נכון חובה לצרף הוראות הסבר בתחילת כל תכנית מחשב. ג. נכון / לא נכון שם קובץ יכול להיות בעברית. ד. נכון / לא נכון שם קובץ יכול להכיל סימן רווח. ה. נכון / לא נכון חובה לשים סימן נקודה-פסיק );( בסוף כל הוראת התכנית. ו. נכון / לא נכון תיעוד לתכנית פירושו שמוסיפים מסמכים ותעודות רשמיים לתכנית. ז. נכון / לא נכון הזחה פירושה הכנסת הכתוב כמה תווי רווח מתחילת השורה. ח. נכון / לא נכון כשכותבים תכנית, אין חובת הזחה. ט. נכון / לא נכון תיעוד קטע יכול להימשך על פני מספר שורות. י. נכון / לא נכון יא. מילה שמורה היא מילה שיש לה משמעות ותפקיד מיוחד בשפה. נכון / לא נכון הדרך הנכונה להשיג הזחה בתכנית היא באמצעות מקש.tab יב. נכון / לא נכון כל עוד קיימות שגיאות בתכנית, לא יתקבל קובץ ריצה )בשפת מכונה(. יג. נכון / לא נכון חובה שיהיו משתנים בכל תכנית. יד. נכון / לא נכון טו. הוראות הקלט והפלט בתכנית, שייכות למחלקה System נכון / לא נכון 6. אחדות מהוראות הפלט שלפניך שגויות. סמן אותן והסבר מהן הטעויות: (1) Console.WriteLine ("Programming in C#"); (2) Console.WriteLine (hello world! ); (3) Console.Write (" "); (4) Console.Write ("Console.WriteLine (hello world!) "); (5) Console.WriteLine ( ' SHANA TOVA '); (6) Console.WriteLine "we have not yet begun" ; (7) Console.WriteLine ("Have a nice day") ; (8) Console.Write ("what a beautiful morning!")

2-22 בחלק מהתכניות הבאות נפלו שגיאות תחביריות. ציין והסבר את השגיאות: (1) using System; namespace firstprogram class Class1 static void Main() Console.WriteLine ("Hello world! ");.7 (2) using System; namespace firstprogram static void Main() ;("בוקר טוב עולם! מה שלום כולם") Console.WriteLine (3) using System; namespace firstprogram class Class1 static void Main() Console.WriteLine ("Learning C# is fun"); (4) using System; class Class1 static void Main(string[] args) Console.WriteLine ("Have a wonderful day! ");

2-23 (5) תכנית מחשב בשפת #C * / לכבוד חופשת סוכות. * * / using System namespace firstprogram class Class1 static void main() ") נהדרת ויפה ("... Console.Write (" שלומית בונה סוכה ") Console.WriteLine (" שלומית בונה סוכת שלום") Console.WriteLine כיצד יראה הפלט עבור קטע זה? הסבר! (6) תכנית מחשב בשפת #C * / * / using System; namespace firstprogram class Class1 static void Main() (7) תכנית מחשב בשפת #C * / * / using System; namespace firstprogram class Class1 static void Main() ;(" יש לי יום יום חג") console.writeline ;(" יש לי חג יום יום.") writeline console. ;(" יש לי יום יום חג") writeline ;(" יש לי חג יום יום.") writeline

2-24 משפטי השמה כתוב משפטי השמה לביצוע הפעולות הבאות : פעולה משפט השמה.8 א. ב. ג. ד. ה. ו. ז. ח. ט. י. יא. יב. יג. יד. הקטנת ערכו של משתנה a ב- 5. הגדלת ערכו של משתנה b פי 3. הכפלת ערכו של המשתנה a ב- 2. החסרת ערך המשתנה b מהמשתנה a. הכפלת ערכו של המשתנה c במשתנה. a הוספת 5 למשתנה. a איפוס המשתנה x. הגדלת ערכו של המשתנה d ב- 8. הגדלת ערכו של המשתנה c פי 8. הגדלת ערכו של המשתנה a במשתנה b. הגדלת ערכו של המשתנה h בפעמיים המשתנה s הקטנת ערכו של משתנה c פי 10. הגדלת ערכו של משתנה d ב- 20%. הקטנת ערכו של משתנה f ב- 30%..9 כתוב הוראות השמה לביצוע הפעולות הבאות: פעולה משפט השמה )1( )2( )3( )4( שים במשתנה a את הסכום המתקבל מחיבור ערכו של המשתנה a לערכו של המשתנה b. שים במשתנה c את ההפרש המתקבל מחיסור מהערך 2 ב- מכפלת ערכו של המשתנה d שבמשתנה c שים במשתנה e את הסכום המתקבל מחיבור מחצית ערכו של המשתנה e לחמש פעמים ערכו של המשתנה f. שים במשתנה g את ההפרש המתקבל מחיסור 80% מערכו של המשתנה g מפעמיים ערכו של המשתנה h.

2-25 כתיבת תכנית מחשב הוראות הדפסה בתרגילים עד 01 01, מומלץ.10.11.12.13.14.15.16 א. ב. לתכנן תחילה את המטלה המבוקשת על גבי נייר משבצות. כתוב תכנית מחשב שתדפיס עבורך כרטיס ביקור הכולל את שמך, כתובתך ומספר הטלפון שלך. הוסף הוראות לתכנית כך שכרטיס הביקור יהיה תחום במסגרת. כתוב תכנית מחשב שתקלוט מן המשתמש את שמו )לתוך משתנה מחרוזת( ואת גילו, ותדפיס עבורו כרטיס ביקור. כתוב תכנית מחשב המשתמשת בהוראות הדפסה, ומציירת על המסך ריבוע מלא מתווי כוכביות. גודל הריבוע לא יהיה קטן מ- 7*7. כתוב תכנית מחשב המשתמשת בהוראות הדפסה, ומציירת על המסך ריבוע חלול בעזרת כוכביות. גודל הריבוע לא יהיה קטן מ- 7*7. כתוב תכנית מחשב המשתמשת בהוראות הדפסה, ומציירת על המסך שני מלבנים, זה לצד זה, בעזרת כוכביות. גודל כל מלבן לא יהיה קטן מ- 5 שורות )אורך( ו- 10 עמודות )רוחב(. כתוב תכנית מחשב המשתמשת בהוראות הדפסה, ומציירת את שמך על המסך מתווי כוכביות. ציור השם יתפרס על לפחות מחצית המסך. כתוב תכנית מחשב המשתמשת בהוראות הדפסה, ומציירת ציור כלשהו על המסך, לדוגמא: בית, מכונית וכד'. קלט, פלט והוראות.17.18.19.20.21.22.23.24 השמה כתוב תכנית מחשב הקולטת למשתנה מטיפוס int מספר שלם, ומדפיסה אותו באופן הבא: בשורה ראשונה יודפס המספר פעם אחת. בשורה השנייה יודפס המספר 2 פעמים. בשורה השלישית יודפס המספר 3 פעמים. כתוב תוכנית מחשב, בה יוצב במשתנה a המספר 3, ובמשתנה b המספר 5. התכנית תדפיס את הסכום.b+a כתוב תוכנית מחשב, בה יוצב 2 במשתנה a, 3 במשתנה b, ו- 5 במשתנה c. את הערך של.4ac b התכנית תדפיס כתוב תכנית מחשב, לקליטת שני מספרים והדפסת מכפלתם בתוספת לכותרת: "המכפלה:". כתוב תכנית מחשב, לקליטת נתון מספרי למשתנה a והדפסת מספר הגדול ממנו ב- 2. כתוב תכנית מחשב, לקליטת נתון מספרי למשתנה x והדפסת 3 מספרים עוקבים, החל מ- x. כתוב תכנית מחשב, לקליטת נתון מספרי למשתנה x והדפסת 3 מספרים עוקבים, כלה ב- )x x יהיה המספר האחרון(. כתוב תכנית מחשב המציבה את הערך 5 במשתנה.num על התכנית לחשב ולהדפיס את המספרים הבאים, כל הדפסה תעשה בשורה נפרדת )כל ההוראות מתייחסות לערך שבמשתנה :) num א. מספר הגדול ממנו ב- 5. ב. מספר הקטן ממנו ב- 10. ג. מספר הגדול ממנו פי 7. ד. מספר הקטן ממנו בחצי.

2-26 ו- ½3 במשתנים. על התכנית לחשב ולהדפיס: 7 כתוב תכנית מחשב המציבה את המספרים את סכומם. א. את הפרשם. ב. את מכפלתם. ג. את תוצאת החילוק של הראשון בשני. ד. כתוב תכנית מחשב שתאחסן את הערך 5 במשתנה num1 ואת הערך 8 במשתנה,num2 על התכנית לחשב ולהציג כפלט: מספר הגדול ב- 10 מסכום שני המשתנים. א. מספר הקטן פי 3 מהפרש המשתנים. ב. מספר הגדול פי 4 מהמשתנה.num1 ג. מספר הקטן ב- 25 ממשתנה.num2 ד. כתוב תכנית מחשב הקולטת למשתנה מטיפוס int מספר שלם, ומדפיסה את הפלט הבא: בשורה ראשונה יודפס המספר. בשורה השנייה יודפס המספר, ואחר כך שני המספרים העוקב לו. בשורה השלישית יודפס המספר, מכפלתו ב- 2, מכפלתו ב-. 3 להלן דוגמת פלט עבור הקלט : 5 5 5 6 7 5 10 15.25.26.27

2-27 דף עבודה צבים שילוב הוראות קלט Chap1 פתח את המחלקה DrawingWithTurtles DrawingSquares )ציור ריבועים( באופן הבא: שבפרויקט והוסף מחלקה חדשה בשם הוספת מחלקה לפרויקט: קליק ימני על שם הפרויקט בחלון Solution שבצד ימין של המסך. בחירה ב- Add ומתוכו: New Item I בחלון Add New Item נבחר ב- class מסוג #C וניתן שם לתכנית. כתיבת כותרת המחלקה :Main נרשום במחלקה שיצרנו את כותרת הפעולה Main )ניתן להעתיק שורה זו מתכנית אחרת שנמצאת בפרויקט(. שילוב חבילת התוכנה Unit4 המכילה את המחלקות הגרפיות לטיפול בצב: נרשום בשורה הראשונה הוראה לקישור ל- Unit4 המגדיר את הצב, באופן הבא: נרשום את המילים.using Unit4 לאחר שנרשום נקודה, נשים לב ש- Studio Visual מציע לבחור את החבילה המתאימה מתוך רשימה של חבילות תוכנה. )אם הרשימה לא מופיעה, נסה ללחוץ על צירוף המקשים >מקש הרווח< + )<Ctrl> II III נבחר בחבילת התוכנה: TutrleLib לתכנית התווספה השורה: Unit4.TurtleLib; using קביעה איזו תכנית תרוץ: קליק ימני על שם הפרויקט ובחירה במאפיינים - Properties IV

2-28 מתוך תיבת הבחירה Startup object נבחר בתכנית שברצוננו להריץ )המחלקה: )DrawingSquares שמירה )S^( )הכוכבית שליד שם חלון הפרויקט נעלמה, דבר המעיד שהתכנית נשמרה(. המשימות.1 א. ב. בדף העבודה הקודם, המתכנת הוא זה שקבע את גודל הצעד שיזוז הצב. עליך להוסיף לתכנית הוראות קלט שיבקשו מהמשתמש בתכנית את גודל הצעד שיזוז הצב. צור צב חדש: שים לב לגודל אות, לסוגריים ולסימן ה- Turtle t1 = new Turtle(); ; שם הצב שיצרנו הוא t1. ניתן לבחור שם אחר, ובלבד שיעמוד בכללים של מתן שם למשתנה. הגדר משתנה מטיפוס מספר שלם (int) בשם,step וכתוב הוראת קלט שתקלוט לתוכו את גודל הצעד שיבצע הצב )גודל הצעד = אורך הקו שיצייר הצב(. t1.moveforward (100); t1.moveforward (step); ג. שנה את ההוראה הגורמת לצב לנוע קדימה, מ- ל- כתוב שתגרום לצב לצייר ריבוע. על התכנית ליצור צב חדש, לקלוט עבורו את אורך צלע הריבוע למשתנה בשם,side ולצייר ריבוע שאורך צלעו הוא.side כתוב שתגרום לצב לצייר מלבן. על התכנית ליצור צב חדש, לקלוט עבורו את אורך צלע המלבן למשתנה בשם,side ולצייר מבלן שאורכו side ורוחבו פי 2 מרוחבו. אורך.2.3

2-29 על מנת לצייר מצולע משוכלל )שאורך כל צלעותיו שוות זו לזו( בעל n צלעות, יש לגרום לצב לפנות בכל פעם n/360 מעלות ימינה )או שמאלה(. = 72 360/5 עבור מחומש משוכלל, יש לצייר 5 צלעות, וזווית הפנייה היא: לדוגמה: = 60 360/6 עבור משושה משוכלל, יש לצייר 6 צלעות, וזווית הפנייה היא: כתוב תכנית שתקלוט את מספר הצלעות במצולע למשתנה n, ואת גודל הצלע למשתנה,side ויצייר מצולע בעל n צלעות באורך side כל אחת..4 עבודה נעימה!

2-30